# 计算线上 & 线下社交的均值和方差

import pandas as pd
import numpy as np

df = pd.read_csv('./workspace/data.csv', encoding='utf-8')

online_map = {
    '1小时以内': 0.5,
    '1-2小时': 1.5,
    '2-4小时': 3,
    '4-6小时': 5,
    '6小时以上': 7
}

offline_map = {
    '1次以下': 0.5,
    '2-3次': 2.5,
    '4-5次': 4.5,
    '6次及以上': 6.5
}

online_col = '3、你平均每天使用线上社交软件（如微信、QQ、微博、抖音、小红书、豆瓣等）的总时长约为'
online_hours = df[online_col].map(lambda x: online_map.get(str(x).strip(), np.nan))

offline_col = '11、你平均每周参与线下社交活动（如班级聚会、社团活动、朋友聚餐、小组讨论等）的次数约为'
offline_freq = df[offline_col].map(lambda x: offline_map.get(str(x).strip(), np.nan))

online_hours = online_hours.dropna()
offline_freq = offline_freq.dropna()

online_mean = online_hours.mean()
online_var = online_hours.var(ddof=0)
offline_mean = offline_freq.mean()
offline_var = offline_freq.var(ddof=0)

print(f'线上社交软件日均使用时间：均值 = {online_mean:.2f} 小时，方差 = {online_var:.2f}')
print(f'线下社交活动周频次：均值 = {offline_mean:.2f} 次，方差 = {offline_var:.2f}')